package com.wangbo.multi.util;


import com.wangbo.multi.Constant;
import com.wangbo.multi.exception.BaseExceptionEnum;
import com.wangbo.multi.model.ResultObj;
import lombok.experimental.UtilityClass;

/**
 * @Package: com.company.scaffold.util
 * @Author: Mr.Waves
 * @Date: 2020-03-09 10:59
 * @Description:
 **/
@UtilityClass
public class ResultObjUtil {
    public ResultObj success() {
        ResultObj resultObj = new ResultObj();
        resultObj.setCode(Constant.SUCCESS_CODE);
        resultObj.setMsg("操作成功");
        return resultObj;
    }

    public ResultObj success(String message) {
        ResultObj resultObj = new ResultObj();
        resultObj.setCode(Constant.SUCCESS_CODE);
        resultObj.setMsg(message);
        return resultObj;
    }

    public <T> ResultObj<T> success(String message, T data) {
        ResultObj<T> resultObj = new ResultObj<T>();
        resultObj.setCode(Constant.SUCCESS_CODE);
        resultObj.setMsg(message);
        resultObj.setData(data);

        return resultObj;
    }

    public <T> ResultObj<T> error(BaseExceptionEnum exceptionEnum, T data) {
        ResultObj<T> resultObj = new ResultObj<T>();
        resultObj.setCode(exceptionEnum.getCode());
        resultObj.setMsg(exceptionEnum.getMessage());
        resultObj.setData(data);
        return resultObj;
    }

    public ResultObj error(BaseExceptionEnum exceptionEnum) {
        ResultObj resultObj = new ResultObj();
        resultObj.setCode(exceptionEnum.getCode());
        resultObj.setMsg(exceptionEnum.getMessage());
        return resultObj;
    }

    public ResultObj error(Integer code, String msg) {
        ResultObj resultObj = new ResultObj();
        resultObj.setCode(code);
        resultObj.setMsg(msg);
        return resultObj;
    }

}
